﻿using System;
using TheGameClient.Processes;

namespace TheGameClient
{
	public class ProgramFileDecompressor : ProgramBase
	{
		public override ulong InterfaceId
		{
			get { return new Guid("{02054403-29C6-4aad-97F1-54E7D39AC484}").ToLong(); }
		}

		public override string ProcessName
		{
			get { return "File Decompressor"; }
		}

		protected override bool OnlyLocal
		{
			get { return true; }
		}

		protected override string SuccessStatus
		{
			get { return "Decompression successful."; }
		}

		protected override string FailureStatus
		{
			get { return "Decompression failed."; }
		}

		protected override string DropErrorStatus
		{
			get { return "Only local files can be decompressed."; }
		}

		public override void Initialize()
		{
			Control.Label = string.Format("{0} v{1}.0", ProcessName, Version);
			base.Initialize();
		}
	}

	public class ProgramFileDecompressorFactory : UiFactoryBase
	{
		public override InterfaceCategory UiCategory
		{
			get { return InterfaceCategory.Program; }
		}

		public override IProcess CreateProgram()
		{
			return new ProgramFileDecompressor();
		}
	}
}